home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
icon
/
packages.lha
/
packages
/
atari
/
ats.arc
/
TESTS.ARC
/
CONCORD.ICN
< prev
next >
Wrap
Text File
|
1990-03-28
|
1KB
|
32 lines
procedure main()
local letters, line, wordlist, word, words, maxword, lineno, i
local j, lines, numbers
letters := &lcase ++ &ucase ++ '\''
words := table("")
maxword := lineno := 0
while line := read() do {
lineno +:= 1
write(right(lineno,6)," ",line)
line := map(line) # fold to lowercase
i := 1
while j := upto(letters,line,i) do {
i := many(letters,line,j)
word := line[j:i]
if *word < 3 then next # skip short words
maxword <:= *word # keep track of longest word
# if it's a new word, start set
if *words[word] = 0 then words[word] := set([lineno])
else insert(words[word],lineno) # else add the line number
}
}
write()
wordlist := sort(words) # sort by words
i := 0
while word := wordlist[i +:= 1][1] do {
lines := "" # build up line numbers
numbers := sort(wordlist[i][2])
while lines ||:= get(numbers) || ", "
write(left(word,maxword + 2),": ",lines[1:-2])
}
end